0
תגובות
אני מנסה לייצא נתונים מהדטאבייס כך שיוצגו מפורמט מסויים שאציג בהמשך.

זו הטבלה שיש לי במסד הנתונים:
id index   first  last
--------------------------
1     1    first1   last1  
2     1    first2   last2  
3     1    first3   last3  
4     2    first4   last4  
5     2    first5   last5


אני מעוניין לייצא את הנתונים בפורמט הבא:
last1 first1 last2 first2 & last3 first3
last4 first4 & last4 first4

זה הקוד שכתבתי

//HERE I RETRIVE ALL THE DATA FROM THE DATABASE.
 $sql = "SELECT COUNT( * ) FROM table WHERE index= $index";
        $result = $dbh->prepare($sql);
        $result->execute();
        $number_of_rows = $result->fetchColumn();

//ASSOC DEFINITION
    $sth = $dbh->prepare("SELECT * FROM table WHERE index= $index);
    $sth->execute();
    $value = $sth->fetch(PDO::FETCH_ASSOC);

//THIS IS WHERE I CALL ALL THE ROWS BY THEIR VALUE
    $return = "
";
                $fname                = $value['fname'];
                $lname                = $value['lname'];
                $numRow = $number_of_rows-2;   // THE ITEM BEFORE THE LAST ONE IN THE ARRAY
                $lastItem = $number_of_rows - 1; //LAST INDEX IN THE ARRAY
                    for($counter = 0; $counter <= $numRow; $counter++){
                    $value = $sth->fetch(PDO::FETCH_ASSOC);                
                        $fname[$counter] = !empty($fname[$counter]) ? $fname[$counter] : '';

                    $return .= $lname. ', ' .   $fname;
                    }
                   $fname[$counter] = !empty($fname[$lastItem]) ? $fname[$lastItem] : '';

                    $return .= "
&" . $fname. ', ' . $lname;
                    $return .= ' ';

            return $return;


עם הקוד הזה אני מקבל את התוצאה הבאה:

last3 first1 last1 first1 & last2 first1
last5 first4 & last4 first4

כפי שניתן לראות אני מקבל קודם את התוצאה האחרונה ולאחר מכן את התוצאה הראשונה והשנייה וכך הלאה. בFIRST אני מקבל תמיד את הערך הראשון.

אני לא מבין מה אני עושה לא בסדר.
יעצו לי להשתמש בדגלים אבל אני לא מוצא הסבר ודוגמא טובה לכך.

תודה מראש!

0 תשובות